package mysql8学习.高级.第10章_索引优化与查询优化;

/**
 * 5.1排序优化
 * 问题:在WHERE条件字段上加索引，但是为什么在 ORDER BY (排序)字段上还要加索引呢?
 * 在MySQL中,支持两种排序方式，分别是 FileSort 和 Index 排序。
 * ● Index 排序中，索引可以保证数据的有序性，不需要再进行排序，效率更高。
 * ● FileSort 排序则一般在内存中进行排序，占用CPU较多。
 *   如果待排结果较大，会产生临时文件I/O到磁盘进行排序的情况，效率较低。
 *
 * 优化建议:
 * 1. SQL 中，可以在WHERE子句和ORDER BY子句中使用索引，目的是在WHERE子句中避免全表扫描，
 *    在ORDER BY子句避免使用 FileSort 排序。
 *    当然，某些情况下全表扫描，或者FileSort 排序不一定比索引慢。
 *    但总的来说，我们还是要避免，以提高查询效率。
 * 2. 尽量使用 Index 完成 ORDER BY 排序。如果WHERE和ORDER BY后面是相同的列就使用单索引列;
 *    如果就使用联合索引。
 * 3. 无法使用Index时，需要对FileSort方式进行调优。
 *
 *
 *
 */
public class E1_排序优化 {
}
